import { BaseTabBarUsualEnum } from '@src/component/common/BaseTabBar/enum'
/**
 * @des 为详情页面右侧tab计算缓存排序用 listA为原有tab数组, listB为缓存tab数组 
 * 数据以listA为主，排序以listB为主,如果listA中存在listB没有的数据，需要将listB内的所有元素排列完成之后再进行listA剩余元素的排序
 * @params {Array} listA 原生tab数组
 * @params {Array} listB 缓存tab数组
 * @params {String} key 数据比较的唯一key值 
 */
export const computedTabList = (listA: Array<any>, listB: Array<any>, key: string = BaseTabBarUsualEnum.TabBarListItemKey): Array<any> => {
	try {
		let list: Array<any> = [];
		let listA_ = listA.filter(t => {
			let vlue: string = t[key];
			let bindex: number = listB.findIndex(v => v[key] === vlue);
			if (bindex > -1) {
				list[bindex] = { ...t, ...listB[bindex] };
				return false
			}
			return true
		});
		// 删除空元素
		list = list.filter(item=>item && item[key]);
		return [...list, ...listA_];
	} catch (error) {
		console.warn(error, 'error try catch computedTabList');
		return [];
	}
}

